package com.start.shop.modules.repository.dao;
 
import java.math.BigDecimal;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.start.shop.modules.repository.entity.Coupon;



@Repository
public interface CouponDao {
	
	/**
	 * 根据优惠券编号查找优惠券
	 */
	Coupon selectCouponByCouponId(@Param("couponId") int couponId, @Param("userId") int userId);

	/**
	 * 根据优惠券id更新优惠券状态
	 */
	void updateCouponStatusByCouponId(@Param("couponId") int couponId, @Param("status") String status);

	/**
	 * 插入优惠券
	 */
	void insertCoupon(Coupon coupon);

	/**
	 * 更新优惠券的过期状态-前1000条
	 */
	int updateExpireCoupon();

	/**
	 * 根据状态查询优惠券
	 */
	List<Coupon> selectCouponsByStatus(@Param("userId") int userId, @Param("status") int status);

	
	/**
	 * 查询可用的优惠券
	 */
	List<Coupon> selectUseableCoupon(@Param("userId")int userId, @Param("orderAmt")BigDecimal orderAmt, @Param("goodsId")int goodsId, @Param("goodsType")int goodsType);

	
	/**
	 * 查询不可用的优惠券
	 */
	List<Coupon> selectDisableCoupon(@Param("userId")int userId, @Param("orderAmt")BigDecimal orderAmt, @Param("goodsId")int goodsId, @Param("goodsType")int goodsType);

	
}
